home *** CD-ROM | disk | FTP | other *** search
/ .net 2000 December / Net78.iso / pc / Software / Netscape 6 / PC / n2p.xpi / install.js
Encoding:
JavaScript  |  2000-09-29  |  3.9 KB  |  142 lines

  1. // this function verifies disk space in kilobytes
  2. function verifyDiskSpace(dirPath, spaceRequired)
  3. {
  4.   var spaceAvailable;
  5.  
  6.   // Get the available disk space on the given path
  7.   spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
  8.  
  9.   // Convert the available disk space into kilobytes
  10.   spaceAvailable = parseInt(spaceAvailable / 1024);
  11.  
  12.   // do the verification
  13.   if(spaceAvailable < spaceRequired)
  14.   {
  15.     logComment("Insufficient disk space: " + dirPath);
  16.     logComment("  required : " + spaceRequired + " K");
  17.     logComment("  available: " + spaceAvailable + " K");
  18.     return(false);
  19.   }
  20.  
  21.   return(true);
  22. }
  23.  
  24. function updateNet2FoneIni()
  25. {
  26.   var fWindows;
  27.   var wpN2PIni;
  28.   var wpErr;
  29.  
  30.   fWindows = getFolder("Windows");
  31.   wpN2PIni = getWinProfile(fWindows, "net2fone.ini");
  32.  
  33.   wpErr = wpN2PIni.writeString("AccountInfo", "source", "NETSCAPE_UREG");
  34.   wpErr = wpN2PIni.writeString("URLS"       , "REGURL", "http://www.net2phone.com/cgi-bin/clienturl.cgi?brand=netscape&language=english&action=%X%&acctnum=%A%&source=%S%"); 
  35.   return(wpErr);
  36. }
  37.  
  38. function getN2PFolder()
  39. {
  40.   var fN2P;
  41.   var winReg = getWinRegistry();
  42.  
  43.   if(winReg != null)
  44.   {
  45.     winReg.setRootKey(winReg.HKEY_LOCAL_MACHINE);
  46.     subKey    = "SOFTWARE\\Net2Phone\\Install";
  47.     valueName = "Directory";
  48.     fN2Pstr   = winReg.getValueString(subKey, valueName);
  49.     if((fN2Pstr == null) || (fN2Pstr == ""))
  50.     {
  51.       subKey          = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion";
  52.       valueName       = "ProgramFilesDir";
  53.       fCommonFilesDir = winReg.getValueString(subKey, valueName);
  54.       fN2Pstr         = fCommonFilesDir + "\\Net2Phone\\";
  55.     }
  56.  
  57.     fN2P = getFolder("file:///", fN2Pstr);
  58.   }
  59.   else
  60.   {
  61.     logComment("getWinRegsitry() failed: " + winReg);
  62.   }
  63.  
  64.   return fN2P;
  65. }
  66.  
  67. // main
  68. var srDest;
  69. var err;
  70. var cErr;
  71. var fN2P;
  72. var fN2PFinal;
  73. var fN2PExecute;
  74. var fileN2PIni;
  75. var fWindows;
  76. var fTemp;
  77. var rv;
  78.  
  79. srDest = 2913;
  80. err    = initInstall("Net2Phone", "/IDT/Net2Phone", "6.0.N6.2000092909"); 
  81. logComment("initInstall() returned: " + err);
  82.  
  83. fN2PFinal = getN2PFolder();
  84. fTemp     = getFolder("Temporary");
  85. fN2P      = getFolder("Temporary");
  86. if(verifyDiskSpace(fN2P, srDest))
  87. {
  88.   setPackageFolder(fN2PFinal);
  89.   err  = addDirectory("/IDT/Net2Phone",
  90.                       "6.0.N6.2000092909",
  91.                       "net2phone",          // dir name in jar to extract 
  92.                       fN2P,                 // Where to put this file (Returned from getFolder) 
  93.                       "",                   // subdir name to create relative to communicatorFolder
  94.                       true);                // Force Flag 
  95.   logComment("addDirectory() returned: " + err);
  96.  
  97.   if(!err)
  98.   {
  99.     fWindows   = getFolder("Windows");
  100.     fileN2PIni = getFolder("file:///", fWindows + "net2fone.ini");
  101.     rv         = File.exists(fileN2PIni);
  102.     logComment("fileExists() returned: " + rv);
  103.     if(rv == false)
  104.     {
  105.       logComment("File not found: " + fileN2PIni);
  106.       fileN2PIni = getFolder("file:///", fTemp + "net2fone.ini");
  107.       cErr       = File.copy(fileN2PIni, fWindows);
  108.       logComment("File.copy() of " + fileN2PIni + " returned: " + cErr);
  109.     }
  110.     else
  111.     {
  112.       logComment("File found: " + fileN2PIni);
  113.       wpErr = updateNet2FoneIni();
  114.       logComment("updateNet2Fone returned: " + wpErr);
  115.     }
  116.   }
  117.   else
  118.     cancelInstall(err);
  119.  
  120.   // check return value
  121.   if(!err)
  122.   {
  123.     fN2PExecute = getFolder(fN2P, "setupN2P.exe");
  124.     err = fileExecute(fN2PExecute, "/nofax /silent /donotstart");
  125.     logComment("fileExecute() returned: " + err);
  126.  
  127.     fileN2PIni = getFolder("file:///", fTemp + "net2fone.ini");
  128.     err = fileDelete(fileN2PIni);
  129.     logComment("fileDelete() returned: " + err);
  130.  
  131.     err = performInstall(); 
  132.     logComment("performInstall() returned: " + err);
  133.   }
  134.   else
  135.     cancelInstall(err);
  136. }
  137. else
  138.   cancelInstall(INSUFFICIENT_DISK_SPACE);
  139.  
  140. // end main
  141.  
  142.